package cn.csc.module.product.dal.dataobject.spu;

import cn.csc.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.time.LocalDateTime;

/**
 * spu信息 DO
 * Standard Product Unit （标准产品单位）
 * SPU是商品信息聚合的最小单位，是一组可复用、易检索的标准化信息的集合，该集合描述了一个产品的特性。
 * 苹果6（商品聚合信息的最小单位）就是一个SPU，与商家，与颜色、款式、套餐都无关。如手机->苹果手机->苹果6，苹果6就是SPU。
 * @author liuchuang
 */
@TableName("spu")
@KeySequence("spu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SpuDO extends BaseDO {


    @TableId
    private BigInteger id;
    /**
     * 品牌ID
     */
    private BigInteger brandId;
    /**
     * 分类ID
     */
    private BigInteger categoryId;
    /**
     * 类目名称
     */
    private String categoryName;
    /**
     * 分类等级所有
     */
    private String categoryLevel;
    /**
     * 店铺分类ID
     */
    private BigInteger shopCategoryId;
    /**
     * 店铺id
     */
    private BigInteger shopId;
    /**
     * 店铺名称
     */
    private String shopName;
    /**
     * 商品名称
     */
    private String name;
    /**
     * 授权手机号
     */
    private String phone;
    /**
     * 卖点
     */
    private String sellingPoint;
    /**
     * 商品介绍主图
     */
    private String mainImgUrl;
    /**
     * 商品图片 多个图片逗号分隔
     */
    private String imgUrls;
    /**
     * 商品视频
     */
    private String video;
    /**
     * 售价，整数方式保存
     */
    private BigDecimal priceFee;
    /**
     * 市场价，整数方式保存
     */
    private BigDecimal marketPriceFee;

    /**
     * 企业购售价
     */
    private BigDecimal shopPriceFee;
    /**
     * 企业购市场价
     */
    private BigDecimal shopMarketPriceFee;
    /**
     * 基本单位
     */
    private String unit;
    /**
     * 销量
     */
    private String saleNum;

    /**
     * 是否企业购 0：否  1：是
     */
    private Integer hasShop;

    /**
     * 审核状态 0：本地  5:待审核  10:审核通过  15:审核不通过
     */
    private Integer verifyStatus;
    /**
     * 状态 -1:删除, 0:下架, 1:上架
     */
    private Integer status;
    /**
     * sku是否含有图片 0无 1有
     */
    private Integer hasSkuImg;
    /**
     * 序号
     */
    private Integer seq;
    /**
     * 审核时间
     */
    private LocalDateTime verifyTime;
    /**
     * 上架提交待审核时间
     */
    private LocalDateTime onlineTime;

    /**
     * 运费
     */
    private BigDecimal freightFee;

    /**
     * 运费备注
     */
    private String freightRemark;

    /**
     * 商品类型(10普通，20选品)
     */
    private Integer type;
    /**
     * 分数10普通，20选品)
     */
    private BigInteger fraction;



}
